package com.lanchetech.user.service;


import com.lanchetech.bean.request.MeetingPageReq;
import com.lanchetech.bean.request.MeetingUserPageReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.BaseResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.MeetingUserVO;
import com.lanchetech.bean.vo.MeetingVO;
import com.lanchetech.entity.Meeting;
import com.lanchetech.entity.User;

public interface MeetingService {
    BaseResp editMeeting(Meeting req);

    ResultData<MeetingVO> getMeetingDetail(Long id);

    BaseResp deleteMeeting(Long id);

    ResultData<BasePageResp<MeetingVO>> getMyMeetingPage(MeetingPageReq req);

    ResultData<BasePageResp<MeetingVO>> getMeetingPage(MeetingPageReq req, User user);

    ResultData<BasePageResp<MeetingUserVO>> getMeetingUserPage(MeetingUserPageReq req);

    ResultData<BasePageResp<MeetingUserVO>> getMyMeetingUserPage(MeetingUserPageReq req);

    ResultData<Long> getJoinMeetCount(User user);

    BaseResp joinMeeting(Long meetingId);

    BaseResp verifyConfirmMeetUser(String hashId, Long meetingId);

    ResultData<MeetingUserVO> getMeetUserDetail(Long id);

    BaseResp cancelMeeting(Long meetingId);
}
